#ifndef PRINT_STRING_POOL_H
#define PRINT_STRING_POOL_H

#include ".\app_cfg.h"
#include ".\print_string.h"

#define PRINT_STR_POOL_ITEM_SIZE    (sizeof(fsm(print_string)))

typedef struct print_str_pool_item_t print_str_pool_item_t;
struct print_str_pool_item_t {
    union {
        fsm(print_string) tItem;
        print_str_pool_item_t *ptNext;
    };
}; 

extern fsm(print_string) *print_str_pool_allocate(void);

extern void print_str_pool_free(fsm(print_string) *ptFsm);

extern void print_str_pool_init(void);

extern void print_str_pool_extend(void *pMem, uint16_t hwSize);

extern int32_t print_str_pool_count(void);

#endif
